package main

import "fmt"

func main() {
	//数组 有初始化值0
	arr := [5]int{1, 2, 3, 4}
	//[1 2 3 4 0]
	fmt.Println(arr)

	//数组长度等于容量
	//长度 5
	println(len(arr))
	//容量 5
	println(cap(arr))

	//可以指定初始化位置
	arr2 := [5]int{1: 2, 2: 1, 3: 0, 4: 3}
	//[0 2 1 0 3]
	fmt.Println(arr2)

	//未指定长度
	arr3 := [...]int{1, 4, 7, 2, 5, 8}
	//[1 4 7 2 5 8]
	fmt.Println(arr3)

	//类型 size+type 数组的类型是:[5]int
	fmt.Printf("数组的类型是:%T\n", arr)

	//数组是值传递
	arr4 := arr
	//true
	fmt.Println(arr4 == arr)
	arr4[1] = 10086
	//[1 2 3 4 0]
	fmt.Println(arr)
	//[1 10086 3 4 0]
	fmt.Println(arr4)
	//false
	fmt.Println(arr4 == arr)

	//二维数组
	arr5 := [][]int{{1, 2}, {2, 3}, {3, 4}}
	//[[1 2] [2 3] [3 4]]
	fmt.Println(arr5)
	//4
	fmt.Println(arr5[2][1])
}
